/*
 * MinMaxArrepentimiento.java
 *
 * Created on 1 de noviembre de 2001, 03:59 PM
 */

package RiesgoDiscreto.Vulnerabilidad;

/**
 *
 * @author  JUAN FELIPE HENAO
 * @version
 */
public class MinMaxArrepentimiento {
    
    private int n_alternativas;
    private int n_estNatura;
    private double[][] m_riesgo;
    private double[][] m_auxiliar;
    private double[] Zmax;
    private double[] D;
    
    public MinMaxArrepentimiento(int alt,int nat, double[][] riesgo) {
        n_alternativas=alt;
        n_estNatura=nat;
        m_riesgo=riesgo;
        Zmax=Utiles.SacaMaximosMinimos.MaxiColum(m_riesgo,n_alternativas,n_estNatura);
        m_auxiliar= new double[n_alternativas][n_estNatura];
        
        //procedimiento
        getM_auxiliar(m_riesgo,Zmax);
        D=Utiles.SacaMaximosMinimos.MaxiFilas(m_auxiliar,n_alternativas,n_estNatura);
        
    }
    
    private double[][] getM_auxiliar(double[][] mat, double[] vect){
        for(int i=0; i<n_alternativas;i++){
            for(int j=0; j<n_estNatura;j++){
                m_auxiliar[i][j]=vect[j]-mat[i][j];
            }
        }
        return m_auxiliar;
    }
    
    public  double[] getD_arrepentimiento(){
        for(int i=0;i<D.length;i++){
            D[i]=(-1)*D[i];
        }
        return D;
    }
}